package vd

import (
	"testing"
	"kumachan/standalone/ctn"
)


type Vector struct {
	X  float64
	Y  float64
}

type Shape interface { Enum(Shape) }

func (Point) Enum(Shape) {}
type Point struct {
	Name      string
	Position  Vector
}
func (PointGroup) Enum(Shape) {}
type PointGroup struct {
	Points  [] Point
}
func (Circle) Enum(Shape) {}
type Circle struct {
	Center  Vector
	Radius  float64
	Border  ctn.Optional[float64]
}
func (Empty) Enum(Shape) {}
type Empty struct {}

var sampleConfig = GoStructConfig {
	Records: [] interface{} {
		Vector {},
		Point {},
		PointGroup {},
		Circle {},
		Empty {},
	},
}
var sampleTransformer, sampleSource = CreateGoStructTransformer(sampleConfig)

func TestOutputSampleConfigSource(t *testing.T) {
	println(sampleSource)
}

// TODO: more test cases to check (serialize*deserialize = identity)


